package com.swallow.auth.api.dept;

import com.swallow.auth.api.dept.dto.CreateDeptDTO;
import com.swallow.auth.api.dept.dto.DeptQryReqDTO;
import com.swallow.auth.api.dept.dto.DeptQryRespDTO;
import com.swallow.auth.common.result.Result;
import com.swallow.auth.common.result.RetPageDTO;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * @author: 18310740596@163.com
 * @date: 2024-05-20 21:44:21
 * @version: v1.0
 * @describe: POST（添加）
 *            GET（查询）
 *            DELETE（删除）
 *            PUT（修改）
 */
@FeignClient(url = "http://localhost:9000")
@RequestMapping("dept/v1")
public interface IDepartmentFacade {

    @PostMapping("create")
    Result<String> create(@RequestBody @Valid CreateDeptDTO createDept);

    @DeleteMapping("delete")
    Result<Void> delete(@RequestParam("deptNo") String deptNo);

    @PutMapping("update")
    Result<Void> update(@RequestBody @Valid CreateDeptDTO createDept);

    @PostMapping("list")
    Result<RetPageDTO<DeptQryRespDTO>> listDept(@RequestBody DeptQryReqDTO pageQry);

    @GetMapping("detail")
    Result<DeptQryRespDTO> getDept(@RequestParam("deptNo") @NotBlank(message = "部门编号不能为空") String deptNo);
}
